A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent disclosure, as its appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
The present invention relates to displaying computer graphics, and in particular, to representing relationship between hierarchically related graphical components.
Computer generated 3-D animations enrich a wide range of human experience, captivating audiences at the movie theaters, gluing gamers to their personal computers, and embarking home buyers on virtual tours of new homes. To generate 3-D animations, a 3-D artist creates 3-D computer models of the objects. These models are used to emulate the movement, color, and shape of animated objects, from a dancing baby to space ships trekking through the universe.
3-D models are often composed of graphical components that represent the shapes and surfaces that make up modeled objects. A graphical component is a set of data, procedures, or combination thereof used to represent a feature of a graphical object. A graphical component may include multiple other graphical components. For example, a model of the four outside walls of a simple house has four graphical components. Each represents one of four rectangles that come together like the sides of a box. The interior plane of a rectangle represents the surface of a wall. Each graphical component that represents a rectangle further includes two other graphical components, one that defines spatial aspects of the rectangle, and another that defines how the light is reflected from the depicted wall""s surface.
A graphical component that defines how light is reflected from a surface is referred to as a material. A material defines various properties of a surface, such as how light is reflected from a surface under normal outdoor light conditions (xe2x80x9cdiffuse propertyxe2x80x9d) or under normal indoor conditions (xe2x80x9cambient propertyxe2x80x9d), and its texture (xe2x80x9cbump propertyxe2x80x9d), that is, whether the surface is smooth, bumpy, or gritty.
There are a variety of techniques used to define properties. One technique is to associate a property with a set of values. For example, three values may represent the amount of red, green, and blue in the color of a material""s diffuse property.
Another technique for defining material properties is to use a map to affect a material property. A map is a graphical component that defines patterns, such as checkers, zebra stripes, marble mottling, or even photographic images. There are two broad categories of maps, bitmaps and procedure maps. A procedure map is a set procedures used to generate a pattern, such as a fractal pattern.
When a map is associated with a particular material property, a particular manipulation is performed to affect the material property. A manipulation, as used herein, is a set of operations applied to two or more graphical components. For example, a material may define a red surface. To give the red surface a brick wall like appearance, a brick lattice map that depicts joints in a brick wall (i.e. the mortar between bricks) is assigned to affect the diffuse property of the material. The material and the map are then manipulated together to render a brick wall like surface by superimposing the brick joints upon the red surface.
A 3-D artist may use 3-D xe2x80x9cmodeling softwarexe2x80x9d to build 3-D models and to animate them. An important function of modeling software is to provide a user interface for receiving input from a 3-D artist that specifies the properties of graphical components, and to render the graphical components so that the artist may see what they create.
FIG. 1 shows a conventional graphical user interface (xe2x80x9cGUIxe2x80x9d) for building graphical components. A GUI is visual display that allows a user to enter data into a computer system by using user input devices to manipulate and interact with user interface controls such as a window, a button, or a dialogue box. Graphical component interface 102 is a GUI that includes graphical user controls for editing graphical components. Graphical component interface 102 receives data indicating various properties of graphical components and operations to perform upon them, including operations for rendering the graphical components. Graphical Component Interface 102 includes image panel 110, material editor 142, and map editors 144 and 146. Image panel 110 contains images of the material being edited, material BrickWall, and other graphical components used to define properties of the material being edited.
In the example shown in FIG. 1, the material being edited is BrickWall, and map BrickJoint and map Sandy are each used to define a property of BrickWall. Image panel 110 includes material image 112, an image of material BrickWall, map image 114, an image of map BrickJoint, and map 116, an image of map Sandy. Image Label 122 is a label specifying the name of the material being edited and displayed in material image 112. Image labels 124 and 126 are labels specifying the name of the maps displayed in map images 114 and 116 respectively.
A 3-D artist may enter data specifying properties of a material and its maps through dialogue boxes material editor 142, map editor 144, and map editor 146. Material editor 142 is used to receive from a user data specifying properties of material BrickWall. Likewise, map editors 144 and 146 are used to receive from a user data specifying properties of materials BrickJoint and Sandy, respectively.
In addition to receiving data input from a user, material editor 142, and map editors 144 and 146 each display a graphical component name and information about properties of the graphical components. For example, material editor 142 displays text indicating that map BrickJoint is used to define material BrickWall""s diffuse property. Map Brickwall""s map editor 144 shows that map Sandy is used to define the texture property of map BrickJoint.
To achieve a desired effect, a 3-D artist examines the arrangement of graphical components being displayed in graphical interface component 102 to determine which properties of which graphical component to edit. To see whether the changes bring about the desired effect, a 3-D artist changes the properties of the material and its graphical components, and observes the effects of the change upon the surface being rendered. For example, a 3-D artist desires to give the brick joint of material BrickWall a lighter gray color. By examining the graphical component interface 102, the 3-D artists observes the gray lattice-like brick mortar depiction in map image 114, and concludes that map BrickJoint is used to give material BrickWall its brick joints. The 3-D artist then proceeds to edit a color property of the map BrickJoint, and observes its effect not only on map BrickJoint in map image 114, but on material BrickWall in material image 112.
More complex materials are composed of a greater number of maps. Some of these may contain other maps, creating a complex hierarchical arrangement. Such an arrangement is not clearly depicted by the sequence of images in image panel 110. When the relationship between graphical components of a complex material is not clear from the structure of images presented in image panel 110, deciphering the numerous dialogue boxes and images displayed in graphical component interface 102 to ascertain the complex relationship between the graphical components is a very tedious and tiresome task.
For example, assume that graphical component interface 102 is being used to edit a material that has properties defined by many maps. These maps include a map A, which is used to define the diffuse property of the material. Several properties of map A are defined by a map B and a map C.
For the material and each map there is an image in image panel 110. To find a map that is being used to define a diffuse property of the material, a 3-D artist examines the material editor 142 for text that describes the name of the map assigned to the diffuse property. After determining that the map""s name is A, the 3-D artist decides to view map A""s image. To find it, the artist reads the image labels in an image panel to find a label with the text xe2x80x9cAxe2x80x9d. Next, the 3-D artist decides to examine map A""s properties. The artist examines the map editors in graphical component interface 102 until the artist finds a map editor indicating it is for map A. Alternatively, the 3-D artist clicks on the image of map A to activate its map editor. The 3-D artist then decides to examine the maps used to define map A. The 3-D artist examines the map editor for map A and determines that map C and map D are used to define various properties of map A. To find the images of map C and map D, the 3-D artist repeats the process of searching the labels in image panel 110. If the 3-D artist wishes to examine another material property, and the tree of maps assigned to the property, the 3-D artist repeats the process described above.
The process of deciphering graphical component interface 102 becomes more tedious for more complex materials. This tedium can wear down a 3-D artist, especially those that work on complex materials for relatively long periods of time. Therefore, it desirable to provide a mechanism that more clearly conveys the arrangement of graphical components that comprise another graphical component, and in particular, that more clearly depicts the arrangement of maps that compose a material.
A mechanism for depicting a plurality of graphical components is described. According to an aspect of the present invention, a graphical component hierarchy is displayed. A graphical component hierarchy includes graphic nodes that each correspond to a graphical component, links between graphic nodes, and images associated with graphic nodes. A link between graphical components represents manipulations performed between the graphical components. The graphical component hierarchy includes images for each graphical component, graphically representing how they affect a final image at various stages.
According to another aspect of the present invention, a user may select graphical components depicted in a graphical component hierarchy for the purpose of performing a set of operations upon the selected graphical components, such as altering their properties. The user may alter the graphical component hierarchy to affect the properties of graphical components, and the way in which they are manipulated together to form images.